From 2db40abe9933c27ffbbc04d0fa9c9f38e795d973 Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Wed, 18 Oct 2006 17:08:09 +0100 Subject: [PATCH] [OpenBSD] Various changes to get Xen building on OpenBSD. Signed-off-by: Keir Fraser --- config/Linux.mk | 33 +-------------------------------- config/OpenBSD.mk | 1 + config/StdGNU.mk | 30 ++++++++++++++++++++++++++++++ config/SunOS.mk | 2 -- config/x86_32.mk | 4 ++++ config/x86_64.mk | 4 ++++ xen/Rules.mk | 2 +- xen/common/vsprintf.c | 2 +- xen/drivers/char/console.c | 2 +- xen/include/xen/lib.h | 2 +- xen/include/xen/stdarg.h | 5 +++++ 11 files changed, 49 insertions(+), 38 deletions(-) create mode 100644 config/OpenBSD.mk create mode 100644 config/StdGNU.mk create mode 100644 xen/include/xen/stdarg.h diff --git a/config/Linux.mk b/config/Linux.mk index be9fab97df..52c2227996 100644 --- a/config/Linux.mk +++ b/config/Linux.mk @@ -1,35 +1,4 @@ -# -*- mode: Makefile; -*- - -AS = $(CROSS_COMPILE)as -LD = $(CROSS_COMPILE)ld -CC = $(CROSS_COMPILE)gcc -CPP = $(CROSS_COMPILE)gcc -E -AR = $(CROSS_COMPILE)ar -RANLIB = $(CROSS_COMPILE)ranlib -NM = $(CROSS_COMPILE)nm -STRIP = $(CROSS_COMPILE)strip -OBJCOPY = $(CROSS_COMPILE)objcopy -OBJDUMP = $(CROSS_COMPILE)objdump - -INSTALL = install -INSTALL_DIR = $(INSTALL) -d -m0755 -INSTALL_DATA = $(INSTALL) -m0644 -INSTALL_PROG = $(INSTALL) -m0755 - -LIB64DIR = lib64 - -SOCKET_LIBS = -CURSES_LIBS = -lncurses -SONAME_LDFLAG = -soname -SHLIB_CFLAGS = -shared - -ifneq ($(debug),y) -# Optimisation flags are overridable -CFLAGS ?= -O2 -fomit-frame-pointer -else -# Less than -O1 produces bad code and large stack frames -CFLAGS ?= -O1 -fno-omit-frame-pointer -endif +include $(XEN_ROOT)/config/StdGNU.mk # You may use wildcards, e.g. KERNELS=*2.6* KERNELS ?= linux-2.6-xen diff --git a/config/OpenBSD.mk b/config/OpenBSD.mk new file mode 100644 index 0000000000..b421a1c840 --- /dev/null +++ b/config/OpenBSD.mk @@ -0,0 +1 @@ +include $(XEN_ROOT)/config/StdGNU.mk diff --git a/config/StdGNU.mk b/config/StdGNU.mk new file mode 100644 index 0000000000..2b767517b8 --- /dev/null +++ b/config/StdGNU.mk @@ -0,0 +1,30 @@ +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +CC = $(CROSS_COMPILE)gcc +CPP = $(CROSS_COMPILE)gcc -E +AR = $(CROSS_COMPILE)ar +RANLIB = $(CROSS_COMPILE)ranlib +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump + +INSTALL = install +INSTALL_DIR = $(INSTALL) -d -m0755 +INSTALL_DATA = $(INSTALL) -m0644 +INSTALL_PROG = $(INSTALL) -m0755 + +LIB64DIR = lib64 + +SOCKET_LIBS = +CURSES_LIBS = -lncurses +SONAME_LDFLAG = -soname +SHLIB_CFLAGS = -shared + +ifneq ($(debug),y) +# Optimisation flags are overridable +CFLAGS ?= -O2 -fomit-frame-pointer +else +# Less than -O1 produces bad code and large stack frames +CFLAGS ?= -O1 -fno-omit-frame-pointer +endif diff --git a/config/SunOS.mk b/config/SunOS.mk index 638281a480..ca73d6f949 100644 --- a/config/SunOS.mk +++ b/config/SunOS.mk @@ -1,5 +1,3 @@ -# -*- mode: Makefile; -*- - AS = $(CROSS_COMPILE)gas LD = $(CROSS_COMPILE)gld CC = $(CROSS_COMPILE)gcc diff --git a/config/x86_32.mk b/config/x86_32.mk index 7e13463326..4a0490afa8 100644 --- a/config/x86_32.mk +++ b/config/x86_32.mk @@ -10,4 +10,8 @@ CFLAGS += -m32 -march=i686 LIBDIR := lib # Use only if calling $(LD) directly. +ifeq ($(XEN_OS),OpenBSD) +LDFLAGS_DIRECT += -melf_i386_obsd +else LDFLAGS_DIRECT += -melf_i386 +endif diff --git a/config/x86_64.mk b/config/x86_64.mk index 3825caafd5..e85b37ff91 100644 --- a/config/x86_64.mk +++ b/config/x86_64.mk @@ -10,4 +10,8 @@ CFLAGS += -m64 LIBDIR = $(LIB64DIR) # Use only if calling $(LD) directly. +ifeq ($(XEN_OS),OpenBSD) +LDFLAGS_DIRECT += -melf_x86_64_obsd +else LDFLAGS_DIRECT += -melf_x86_64 +endif diff --git a/xen/Rules.mk b/xen/Rules.mk index d333e563ce..08c26aca44 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -72,7 +72,7 @@ AFLAGS := $(strip $(AFLAGS) $(AFLAGS-y)) AFLAGS += $(patsubst -std=gnu%,,$(CFLAGS)) # LDFLAGS are only passed directly to $(LD) -LDFLAGS += $(LDFLAGS_DIRECT) +LDFLAGS := $(strip $(LDFLAGS) $(LDFLAGS_DIRECT)) include Makefile diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c index da82029195..7de43593fe 100644 --- a/xen/common/vsprintf.c +++ b/xen/common/vsprintf.c @@ -16,7 +16,7 @@ * - scnprintf and vscnprintf */ -#include +#include #include #include #include diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index b43f8eafc7..78034b2753 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -6,7 +6,7 @@ * Copyright (c) 2002-2004, K A Fraser. */ -#include +#include #include #include #include diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h index 00bb0830e9..52509addd4 100644 --- a/xen/include/xen/lib.h +++ b/xen/include/xen/lib.h @@ -2,7 +2,7 @@ #define __LIB_H__ #include -#include +#include #include #include #include diff --git a/xen/include/xen/stdarg.h b/xen/include/xen/stdarg.h new file mode 100644 index 0000000000..a9bdaca256 --- /dev/null +++ b/xen/include/xen/stdarg.h @@ -0,0 +1,5 @@ +#if defined(__OpenBSD__) || defined(__sun__) +# include "/usr/include/stdarg.h" +#else +# include +#endif -- 2.30.2